﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using SistemaCenterQuimPost.Plantillas;

namespace SistemaCenterQuimCentral.UI.CentralSupervisor
{
    public partial class frmMenuSupervisorCentral : SistemaCenterQuimPost.Plantillas.frmPlantillaPadre
    {
        //-----------ATRIBUTOS----------------------

        //-----------CONSTRUCTOR----------------------
        public frmMenuSupervisorCentral()
        {
            InitializeComponent();
        }

        //-----------METODOS VARIOS-------------------
        
        //desactiva el menú una vez que detecta que un frmHijo se encuentra activo, y se deshanilita en otro caso
        private void HabilitarDesactivarMenu(object sender, EventArgs e) //Evento MdiChilActive. Activa o desactiva el menu, según existan o no ventanas hijas activas.
        {
            /*if (this.ActiveMdiChild == null)
            {
                menuStripSup.Enabled = true;
            }
            else
            {
                menuStripSup.Enabled = false;
            }*/
        }

        public void setTxtMenu() //establece el menu cuando un usuario ingresa.
        {
            this.Text = "Sistema CenterQuim Central - Sesión: " + this.getNombreUsuario() + " [Supervisor]";
        }

        private void gestionDeClientesToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (noEstaAbierto("frmGestionClientesS"))
            {
                frmGestionClientesS unFrmGestionClientesSupervisor = new frmGestionClientesS();
                unFrmGestionClientesSupervisor.MdiParent = this;
                unFrmGestionClientesSupervisor.Show();
            } else
            {
                mandarAlFrenteFormulario("frmGestionClientesS");
            }
        }

        private void gestionDeProductosToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (noEstaAbierto("frmGestionProductosCentralS"))
            {
                frmGestionProductosCentralS unFrmGestionProductosCentralS = new frmGestionProductosCentralS();
                unFrmGestionProductosCentralS.MdiParent = this;
                unFrmGestionProductosCentralS.Show();
            }else
            {
                mandarAlFrenteFormulario("frmGestionProductosCentralS");
            }
        }

        private void gestiónProveedoresToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (noEstaAbierto("frmGestionProveedoresS"))
            {
                frmGestionProveedoresS unFrmGestionProveedoresS = new frmGestionProveedoresS();
                unFrmGestionProveedoresS.MdiParent = this;
                unFrmGestionProveedoresS.Show();
            } else
            {
                mandarAlFrenteFormulario("frmGestionProveedoresS");
            }
        }

        private void recibirProductosToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (noEstaAbierto("frmRecibirProductosCentral"))
            {
                frmRecibirProductosCentral unFrmRecibirProductosCentral = new frmRecibirProductosCentral();
                unFrmRecibirProductosCentral.MdiParent = this;
                unFrmRecibirProductosCentral.Show();
            } else
            {
                mandarAlFrenteFormulario("frmRecibirProductosCentral");
            }
        }

        private void emitirOrdenDeCompraToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (noEstaAbierto("frmEmitirOrdenCompraCentral"))
            {
                frmEmitirOrdenCompraCentral unFrmEmitirOrdenCompraCentral = new frmEmitirOrdenCompraCentral();
                unFrmEmitirOrdenCompraCentral.MdiParent = this;
                unFrmEmitirOrdenCompraCentral.Show();
            } else
            {
                mandarAlFrenteFormulario("frmEmitirOrdenCompraCentral");
            }

        }
        
        private void enviarProductosToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (noEstaAbierto("frmEnviarProductosPost"))
            {
                frmEnviarProductosPost unFrmEnviarProductosPost = new frmEnviarProductosPost();
                unFrmEnviarProductosPost.MdiParent = this;
                unFrmEnviarProductosPost.Show();
            } else
            {
                mandarAlFrenteFormulario("frmEnviarProductosPost");
            }
        }

        private void salirToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        protected override void frmPlantillaPadre_FormClosing(object sender, FormClosingEventArgs e) //captura el evento que se emite cuando el usuario cierra el formulario (apreta en la "x") de la ventana, justamentemente antes.
        {
            DialogResult result = MessageBox.Show("¿Desea salir del Sistema CenterQuim Central?", "CONFIRMACION DE CIERRE", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

            if (result == DialogResult.No)
            {
                e.Cancel = true;    //si responde no, cancela el evento de cierre del formulario.
            }
        }

        private bool noEstaAbierto(string unFormulario)  //verifica que el formulario ya no esté abierto, si está abierto devuelve false, sino true;
        {
            bool noabierto = true;

            foreach (Form unHijo in this.MdiChildren)
            {
                if (unHijo.Name == unFormulario)
                {
                    noabierto = false;
                }
            }

            return noabierto;
        }

        private void mandarAlFrenteFormulario(string unFormulario) //envia al frente a un formulario secundario no activo.
        {
            foreach (Form unHijo in this.MdiChildren)
            {
                if (unHijo.Name == unFormulario)
                {
                    unHijo.BringToFront();
                    break;
                }
            }
        }
       
    }
}
